Programming a conversational agent to carry out multi-turn dialogues requires detailed planning and careful implementation. It is a three-stage refining process including drawing up a blueprint/diagram for the conversational flow, implementing the diagram, and testing and refining by repeating until it is satisfied. First two steps are difficult to keep in synchronization because they are implemented in two different places. An all-in-one solution is more desirable for rapid development.
Besides dialogue management, understanding utterances in every turn of dialogue is essential. It is also a refining process including defining intents/entities to be predicted in a dialogue, annotating training samples and train a prediction system, testing and evaluating performance, searching and debugging the code, and refining by repeating these steps until it is satisfied. Such manual operations are time consuming and inefficient. In addition, while graphical user interface (GUI)-based visual conversational agents have many benefits, there is currently no efficient way to search through the code and/or debug them. Indeed, most GUIs only show high-level overviews of conversational agents without revealing much detail of the underlying code and abstracts away content of code text. Although each component of a GUI can be opened to reveal that component's underlying code, this is not practical when the conversational agent involves many components. The code of a conversational agent can also be exported to a text editor, however this approach does not allow for changes made to code in the text editor to synchronize automatically with the GUI and thus loses the convenience of searching while visualizing the search result in the GUI.